[SCOI2016]美味
问题描述
一家餐厅有 n 道菜,编号 1…n ,大家对第 i 道菜的评价值为 ai(1≤i≤n)。有 m 位顾客,第 i 位顾客的期望值为 bi,而他的偏好值为 xi 。因此,第 i 位顾客认为第 j 道菜的美味度为 bi XOR (aj+xi),XOR 表示异或运算。第 i 位顾客希望从这些菜中挑出他认为最美味的菜,即美味值最大的菜,但由于价格等因素,他只能从第 li 道到第 ri 道中选择。请你帮助他们找出最美味的菜。
输入格式
第1行,两个整数,n,m,表示菜品数和顾客数。
第2行,n个整数,a1,a2,…,an,表示每道菜的评价值。
第3至m+2行,每行4个整数,b,x,l,r,表示该位顾客的期望值,偏好值,和可以选择菜品区间。
输出格式
输出m 行,每行一个整数表示该位顾客选择的最美味的菜的美味值。
样例输入
4 4
1 2 3 4
1 4 1 4
2 3 2 3
3 2 3 3
4 1 2 4
样例输出
9
7
6
7
提示
1≤n≤2×10^5,
0≤ai,bi,xi<10^5,
1≤li≤ri≤n(1≤i≤m),
1≤m≤10^5
如果不加上$a_j$,那么就是可持久化trie裸题。
加上$a_j$之后仍然考虑按位贪心。判断某一位能不能取1,就是判断区间里是否存在大小在某个范围内的数,这个采用主席树可以$O(logn)$判断,时间复杂度$O(nlog^2n)$。
1 |
|